Cheap Tupling Transformation
نویسندگان
چکیده
Tupling is a well-known transformation tactic to obtain new recursive functions without redundant recursive calls and/or multiple traversals of common data, which is achieved by grouping some recursive functions into a tuple. Although being studied for a long time based on fold/unfold transformation, it su ers from the high cost of keeping track of function calls and has to use clever control to avoid in nite unfolding, which prevent it from being used in a practical compiler of functional languages. In this paper, we propose a cheap tupling based on the theory of constructive algorithmics. We give several simple but e ective calculational rules, which not only can be successfully applied to improve a lot of interesting recursive functions but also can be implemented e ciently.
منابع مشابه
Redundant Call Elimination via Tupling
Redundant call elimination has been an important program optimisation process as it can produce super-linear speedup in optimised programs. In this paper, we investigate use of the tupling transformation in achieving this optimisation over a first-order functional language. Standard tupling technique, as described in [6], works excellently in a restricted variant of the language; namely, functi...
متن کاملSynchronisation Analysis to Stop Tulping
Tupling transformation strategy can be used to merge loops together by combining recursive calls and also to eliminate redundant calls for a class of programs. In the latter case, this transformation can produce super-linear speedup. Existing works in deriving a safe and automatic tupling only apply to a very limited class of programs. In this paper, we present a novel parameter analysis, calle...
متن کاملA Modular Derivation Strategy via Fusion and Tupling
We show how programming pearls can be systematically derived via fusion, followed by tupling transformations. By focusing on the elimination of intermediate data structures (fusion) followed by the elimination of redundant calls (tupling), we can systematically realise both space and time e cient algorithms from naive speci cations. We illustrate our approach using a well-known maximum segment ...
متن کاملEffective Optimization of Multiple Traversals in Lazy Languages
Tupling transformation strategy can be applied to eliminate redundant calls in a program and also to eliminate multiple traversals of data structures. While the former application can produce super-linear speedup in the transformed program, the eeectiveness of the latter has yet to be appreciated. In this paper, we investigate the pragmatic issues behind elimination of multiple data traversal i...
متن کاملProgram Transformation : Theoretical Foundations and Basic Techniques
(v) interaction of program transformation with related methodologies for assisting software development, (vi) languages and systems for specifying and applying program transformations; and (vii) case studies, that is, derivation of non-trivial algorithms from specifications and automated generation of software systems. Among all papers we have received, twelve papers were selected for publicati...
متن کامل